home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / share / jockey / handlers / b43.py next >
Text File  |  2008-10-24  |  2KB  |  61 lines

  1. # (c) 2008 Canonical Ltd.
  2. # Author: Martin Pitt <martin.pitt@ubuntu.com>
  3. # License: GPL v2 or later
  4.  
  5. import re, os.path, logging, subprocess
  6. from glob import glob
  7.  
  8. from jockey.handlers import KernelModuleHandler
  9.  
  10. class B43Handler(KernelModuleHandler):
  11.     '''Handler for Broadcom Wifi chipsets which use the b43 module and
  12.     b43-fwcutter.'''
  13.  
  14.     def __init__(self, ui):
  15.         KernelModuleHandler.__init__(self, ui, 'b43')
  16.         self.package = 'b43-fwcutter'
  17.  
  18.     def enabled(self):
  19.         '''Return if the handler is enabled.
  20.         
  21.         'Enabled' means that the user agreed to use this driver if it is
  22.         applicable.
  23.         '''
  24.         return KernelModuleHandler.enabled(self) and \
  25.             len(glob('/lib/firmware/b43/*.fw')) > 0
  26.  
  27.     def used(self):
  28.         '''Return if the handler is currently in use.'''
  29.  
  30.         return KernelModuleHandler.used(self) and \
  31.             len(glob('/lib/firmware/b43/*.fw')) > 0
  32.  
  33.     def id(self):
  34.         '''Return an unique identifier of the handler.'''
  35.  
  36.         i = 'firmware:' + self.module
  37.         if self.driver_vendor:
  38.             i += ':' + self.driver_vendor.replace(' ', '_')
  39.         return i
  40.  
  41.     def enable(self):
  42.         '''Remove blacklist produced by BroadcomWLHandler.'''
  43.  
  44.         bl_file = '/etc/modprobe.d/blacklist-bcm43'
  45.         if os.path.exists(bl_file):
  46.             os.unlink(bl_file)
  47.             OSLib.inst._load_module_blacklist()
  48.             subprocess.call(['/usr/sbin/update-initramfs', '-u'])
  49.  
  50.         KernelModuleHandler.enable(self)
  51.         if os.path.exists('/usr/share/b43-fwcutter/install_bcm43xx_firmware.sh'):
  52.             subprocess.call(['/usr/share/b43-fwcutter/install_bcm43xx_firmware.sh'])
  53.  
  54. class B43LegacyHandler(B43Handler):
  55.     '''Handler for Broadcom Wifi chipsets which use the b43legacy module and
  56.     b43-fwcutter.'''
  57.  
  58.     def __init__(self, ui):
  59.         KernelModuleHandler.__init__(self, ui, 'b43legacy')
  60.         self.package = 'b43-fwcutter'
  61.